// 引入Vue
import Vue from 'vue';
// 引入VueRouter
import VueRouter from 'vue-router';

Vue.use(VueRouter);

// export default new VueRouter({
// })


// 引入路由组件
import Home from '@/pages/Home';
import Login from '@/pages/Login';
import Register from '@/pages/Register';
import Search from '@/pages/Search';
// 重写push||replace方法

// 备份push 与 replace
let originPush=VueRouter.prototype.push;

let originReplace=VueRouter.prototype.replace;

// // 重写push方法
VueRouter.prototype.push=function(location,resolve,reject) {
    if (resolve&&reject) {
        originPush.call(this,location,resolve,reject);
    }else{
        originPush.call(this,location,()=>{},()=>{});
    }
}
// // 重写replace方法
VueRouter.prototype.replace=function({location,resolve,reject}) {
    if (resolve&&reject) {
        originReplace.call(this,location,resolve,reject);
    }else{
        originReplace.call(this,location,()=>{},()=>{})
    }
}

const withRouter = () => {
    return new VueRouter({
        routes: [
            {
                path: '/home',
                component: Home,
                meta: {
                    show: true
                }
            },
            {
                path: '/login',
                component: Login,
                meta: {
                    show: false
                }
            },
            {
                path: '/register',
                component: Register,
                meta: {
                    show: false
                }
            },
            {   //在站位加上一个?,代表params参数,可以传递,也可以不穿
                path: '/search/:keyword?',
                component: Search,
                name: 'search',
                meta: {
                    show: true
                },
                // 路由组件可以传递props,三种写法
                // 第一种:对象写法
                // props:{erha:'二哈拆家',taidi:'烦人'}
                // 第二种:布尔值
                // props:true
                // 第三种:函数写法
                props:route=>({a:route.params.keyword,b:route.query.k}) 

            },
            {
                path: '/',
                redirect: '/home',
            }

        ]

    })

}
// 第四步:暴露VueRouter类的实例
export default withRouter();
